package com.soteind.system.notifications;

import com.soteind.exceptions.ExceptionMessage;
import com.soteind.system.session.core.CoreSession;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.activation.DataSource;
import javax.persistence.EntityManagerFactory;

public abstract class Notifier {

    private EmailSender emailSender;
    private List<ExceptionMessage> errors;
    private String datePattern;
    private String dateTimePattern;
    private String timePattern;
    private EntityManagerFactory emf;
    private CoreSession coreSession;
    public static final String PN_CURRENTTIME = "CURRENTTIME";
    public static final String PN_CURRENTDATE = "CURRENTDATE";
    public static final String PN_CURRENTDATETIME = "CURRENTDATETIME";
    public static final String PN_CURRENTUSERNAME = "CURRENTUSERNAME";
    public static final String PN_COMPANYURL = "COMPANYURL";
    public static final String PN_COMPANYNAME = "COMPANYNAME";

    public Notifier(EmailSender emailSender, EntityManagerFactory emf) {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    public Notifier(EmailSender emailSender, String notificationNameKey, EntityManagerFactory emf) {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    public void sendToSendTray(SenderTrayBean applicationBean) {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    public boolean send() {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    protected List<Email> buildEmails() {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    protected String buildEmailBody(String language) {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    protected String buildSubject(String language) {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    protected abstract String getParameterValue(String string, String string1);

    protected String getCurrentFullUserName(String string) {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    protected abstract Map<String, List<String>> getAddressesList();

    public abstract String getFromName(String string);

    public abstract String getFromEmail();

    protected abstract List<DataSource> getAttachmentList(String string);

//    public NotificationConfigEntity getConfigParamByName(String string) {
//        //compiled code
//        throw new RuntimeException("Compiled Code");
//    }

    protected String formatDate(Date date) {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    protected String formatDateTime(Date date) {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    protected String formatTime(Date date) {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    private String formatParameterName(String string) {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    private String formatLinkParameterName(String string) {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

//    private String replaceParamsByValue(String string, NotificationEntity ne, String string1) {
//        //compiled code
//        throw new RuntimeException("Compiled Code");
//    }

    public String getFormUrl(String string) {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    public EmailSender getEmailSender() {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    public void setEmailSender(EmailSender es) {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    public String getDatePattern() {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    public void setDatePattern(String string) {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    public String getDateTimePattern() {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    public void setDateTimePattern(String string) {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    public String getTimePattern() {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    public void setTimePattern(String string) {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    public abstract String getCompanyNAME();

    public abstract String getComapanyURL();

    public List<ExceptionMessage> getErrors() {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    public void setErrors(List<ExceptionMessage> list) {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

    public EntityManagerFactory getEmf() {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }

//    public NotificationEntity getNotificationEntity() {
//        //compiled code
//        throw new RuntimeException("Compiled Code");
//    }

//    public void setNotificationEntity(NotificationEntity ne) {
//        //compiled code
//        throw new RuntimeException("Compiled Code");
//    }

    public CoreSession getOneForSession() {
        //compiled code
        throw new RuntimeException("Compiled Code");
    }
}